
//
//
//		public int baseIndex(T value)
//		{
//			return base.indexOf(value);
//		}
//		
//		public int different2(T v1, T v2)
//		{
//		
//			return baseIndex(v2) - baseIndex(v1);
//		}
//
//


package arrayList;

public class Temp {

}
//
//
//package arrayList;
//
//import java.util.ArrayList;
//import java.util.Random;
//
//
///**
// * This class does not handle duplicates 
// * @author ldong
// *
// * @param <T>
// */
////public class SkipList<T extends Comparable<? super T>>
//{
//    public ArrayList<ArrayList<T>> cols;
//    public ArrayList<T> base;
//    
//    public SkipList()
//    {
//    	cols = new ArrayList<ArrayList<T>>();
//    	base = new ArrayList<T>();
//    	cols.add(base);  // add the base level to the cols as 0 level
//    }
//   
//    public void baseAdd(T value)
//    {
//    	// if not found
//    	if(!baseFind(value))
//    	{	
//    		// add it
//    		if(base.size() == 0)
//				base.add(value);
//    		else
//	    		for(int i= 0; i < base.size(); i++)
//	    		{
//	    			if(value.compareTo(base.get(i)) < 0)
//	    			{
//	    				base.add(i, value);
//	    				return;
//	    			}
//	    			else if(value.compareTo(base.get(i)) > 0)
//	    			{
//	    				base.add(value);
//	    				return;
//	    			}
//	    		}
//    			
//    	}
//    	else
//    		System.out.println("Sorry, it existed already.");
//
//    }
//    
//	public void printbase()
//	{
//		System.out.println(base);
//	}
//	
//    public boolean baseFind(T value)
//    {
//    	return base.contains(value);
//    }
//	
//    public void add(T value)
//    {
//    	if(search(value))
//    		System.out.println("Duplicates");
//    	else	
//    	{
//    		for(int i = 0; i< base.size(); i++)
//    		    if(value.compareTo(base.get(i))<0)
//    		    	base.add(i, value);
//    	}
//    }    
//    public void insert(T number)
//    {
//    	// starting from the left upper corner
//    	int level = buildLevel();
//    	System.out.println("level is "+ level);
//    	
//    	
//    	// build
//    	if(level - getHeight() > 0)
//    	{
//    		
//    	}
//    	
//    	
//    	
//    	
//    	// from top to bottom
//    	for(int i = cols.size()-1; i > 0; i--)
//    	{
//    		if(cols.get(i).contains(number))
//    		{
//    			System.out.println("Dupilcates found, insertion failed");
//    			return; // ignore if there are duplicates
//    		}
//    		else
//    		{
////				if(cols.get(i))
//    			for(int j =0; j< cols.get(i).size(); j++)
//    			{
//    				// if number < current
//    				if(number.compareTo(cols.get(i).get(j)) < 0 )
//    				{
//    					// adds it in front of it 
//    					cols.get(i).add(j, number);
//    				}
//    			}
//    			
//    		}
//    	}
//    	
//    }
//
//    
//    public boolean find(T value)
//    {
//    	if(search(value))
//    		return true;
//    	
//        System.out.println("not found");
//    	return false;
//    }
//
//    
//    public boolean search(T value)
//    {    	
//    	int x = -1;
//    	int y = -1;
//    	for(int i = getY(); i >= 0 ;i--)
//    	{
//    		if(cols.get(i).contains(value))
//	    	{
//	    		x = cols.get(i).indexOf(value);
//	    	    y = i; 
//	    		System.out.println("Target found, its on level"+ y
//	    				+ " index of "+ x);
//	    		return true;
//	    	}
//    	}
//    	
//    	return false;
//    	
//    }
//    
//  /*  public void delete(Integer value)
//    {
//    	int y = cols.size() -1;
//    	if(search(value) > 0)
//    	{
//            cols.get(y).indexOf(value);
//            for(in)
//    	}
//    }*/
//
//    // print out every arrayList
//	public void print()
//	{
//    	for(int i = cols.size()-1; i > 0; i--)
//    		System.out.println(i+ "<-->" +cols.get(i));
//	}
//	
//	private boolean odds()
//	{
//		Random rand = new Random(); 
//		return rand.nextBoolean();		
//	}
//   
//	public int buildLevel()
//	{
//		int level = 0;
//		while(odds())
//			level++;
//		return level;
//	}
//	
//	public int getY()
//	{
//		return getHeight()-1;
//	}
//    public int getHeight()
//    {
//    	return cols.size();
//    }
//	
//}
////////////////////
//
//
//
//public void baseAdd(T value)
//{
//	// if not found
//	if(!baseFind(value))
//	{	
//		// add it
//		if(base.size() == 0)
//			base.add(value);
//		else
//    		for(int i= 0; i < base.size(); i++)
//    		{
//    			if(value.compareTo(base.get(i)) < 0)
//    			{
//    				base.add(i, value);
//    				return;
//    			}
//    			else if(value.compareTo(base.get(i)) > 0)
//    			{
//    				base.add(value);
//    				return;
//    			}
//    		}
//			
//	}
//	else
//		System.out.println("Sorry, it existed already.");
//
//}
//
//public void printbase()
//{
//	System.out.println(base);
//}
//
//public boolean baseFind(T value)
//{
//	return base.contains(value);
//}
//
//
///**********************************/
//
//public void add(T value)
//{
//	if(search(value))
//		System.out.println("Duplicates");
//	else	
//	{
//		for(int i = 0; i< base.size(); i++)
//		    if(value.compareTo(base.get(i))<0)
//		    	base.add(i, value);
//	}
//}    
//public void insert(T number)
//{
//	// starting from the left upper corner
//	int level = buildLevel();
//	System.out.println("level is "+ level);
//	
//	
//	// build
//	if(level - getHeight() > 0)
//	{
//		
//	}
//	
//	
//	
//	
//	// from top to bottom
//	for(int i = cols.size()-1; i > 0; i--)
//	{
//		if(cols.get(i).contains(number))
//		{
//			System.out.println("Dupilcates found, insertion failed");
//			return; // ignore if there are duplicates
//		}
//		else
//		{
////			if(cols.get(i))
//			for(int j =0; j< cols.get(i).size(); j++)
//			{
//				// if number < current
//				if(number.compareTo(cols.get(i).get(j)) < 0 )
//				{
//					// adds it in front of it 
//					cols.get(i).add(j, number);
//				}
//			}
//			
//		}
//	}
//	
//}
//
//
//public boolean find(T value)
//{
//	if(search(value))
//		return true;
//	
//    System.out.println("not found");
//	return false;
//}
//
//
//public boolean search(T value)
//{    	
//	int x = -1;
//	int y = -1;
//	for(int i = getY(); i >= 0 ;i--)
//	{
//		if(cols.get(i).contains(value))
//    	{
//    		x = cols.get(i).indexOf(value);
//    	    y = i; 
//    		System.out.println("Target found, its on level"+ y
//    				+ " index of "+ x);
//    		return true;
//    	}
//	}
//	
//	return false;
//	
//}
//
///*  public void delete(Integer value)
//{
//	int y = cols.size() -1;
//	if(search(value) > 0)
//	{
//        cols.get(y).indexOf(value);
//        for(in)
//	}
//}*/
//
//// print out every arrayList
//public void print()
//{
//	for(int i = cols.size()-1; i > 0; i--)
//		System.out.println(i+ "<-->" +cols.get(i));
//}
//
//private boolean odds()
//{
//	Random rand = new Random(); 
//	return rand.nextBoolean();		
//}
//
//public int buildLevel()
//{
//	int level = 0;
//	while(odds())
//		level++;
//	return level;
//}
//
//public int getY()
//{
//	return getHeight()-1;
//}
//public int getHeight()
//{
//	return cols.size();
//}
//
//public void levelPrint() {
//	// TODO Auto-generated method stub
//	
//}
///////////////////////////////////

//public boolean add(T value)
//{
//	/* could do a search on base here */
//	int level = buildLevel();
//
// top left corner to bottom right loop up  
//for(int i = cols.size(); i > 0; i--)
//{
//	if(!levelFind(i-1, value))
//	{
//		// add it to the chart
//    	for(int j = 0; j<= level; j++)
//    	{ 	
//    		// make a new layer if necessary
//    		if(cols.size() < level)
//	    		makeNewLevel();
//
//    		levelAdd(i-1, value);
//    	}
//	}
//}    	
//return true;}



/******/
//public void levelPrintClean(Integer level)
//{
//	// left column, level mark
//
//	int size = cols.get(level).size();
//	if(level !=0 && size == 1) // if it only has one element
//	{
//    	System.out.print("Level "+ level + ": ");
//   		System.out.println("   "+printSpace((baseIndex(cols.get(level).get(0))))+
//				cols.get(level).get(0));
//   		size--;
//	}
//	else if(level == 0)
//		levelPrint(0);
//	else
//	{
//    	System.out.print("Level "+ level + ": ");
//    	
//   		System.out.print(printSpace(baseIndex(cols.get(level).get(0))) +
//				"   "+cols.get(level).get(0));
//    	
//		for(int j = 1; j < size; j++)
//	   	{
//	   		System.out.print(printSpace(different2(cols.get(level).get(j-1), 
//	   				cols.get(level).get(j))));
//	   		
//	   		System.out.print(cols.get(level).get(j));
//	   	}
//		System.out.println();
//	}	   	
////   	System.out.println(base);
//    	
//}